﻿using System;
using System.Collections.Generic;
using System.Text;
using System.Data;
using System.Data.SqlClient;


namespace SisEagleBO
{

    /// <summary>
    /// Classe BO: Business Objects
    /// Criador: Rafael da Silva França
    /// Criada em 08/09/2012
    /// Contato: rafael.sfranca@gmail.com
    /// </summary>
    public partial class FuncionarioBO
    {

        // Atributos
        private SisEagleDO.SisEagleDO objDO = null;
        private StringBuilder strSql = null;

        //Métodos
        /// <summary>
        /// Seleciona todos os registros e retorna um DataSet.
        /// </summary>
        /// <returns>DataSet</returns>
        public DataSet FindAll()
        {
            try
            {
                strSql = new StringBuilder();
                strSql.Append(" SELECT ");
                // colunas
                strSql.Append("  Estados.Sigla, Estados.Nome AS NomeEstado, Privilegios.Descricao, Funcionario.* " +
                    " FROM         Funcionario INNER JOIN " +
                    " Privilegios ON Funcionario.codPrevilegio = Privilegios.CodPrevilegio INNER JOIN " +
                    "  Estados ON Funcionario.codEstado = Estados.CodEstado  ");

                objDO = new SisEagleDO.SisEagleDO();

                // executa consulta e retorna um DataSet
                return objDO.GetDataSet(strSql.ToString(), "Funcionario");
            }
            catch (Exception er)
            {
                throw new Exception("Aconteceu um erro:" + er.Message.ToString());
            }
            finally
            {
                strSql = null;
            }
        }

        /// <summary>
        /// Seleciona todos os registros com ordenação e retorna um DataSet.
        /// </summary>
        /// <param name="_orderby">campo de ordenação</param>
        /// <returns>DataSet</returns>
        public DataSet FindAll(string _orderby)
        {
            try
            {
                strSql = new StringBuilder();
                strSql.Append(" SELECT ");
                // colunas
                strSql.Append("  Estados.Sigla, Estados.Nome AS NomeEstado, Privilegios.Descricao, Funcionario.* " +
                    " FROM         Funcionario INNER JOIN " +
                    " Privilegios ON Funcionario.codPrevilegio = Privilegios.CodPrevilegio INNER JOIN " +
                    "  Estados ON Funcionario.codEstado = Estados.CodEstado  ");
                strSql.Append(" ORDER BY " + _orderby);

                objDO = new SisEagleDO.SisEagleDO();

                // executa consulta e retorna um DataSet
                return objDO.GetDataSet(strSql.ToString(), "Funcionario");
            }
            catch (Exception er)
            {
                throw new Exception("Aconteceu um erro:" + er.Message.ToString());
            }
            finally
            {
                strSql = null;
            }
        }

        /// <summary>
        /// Seleciona todos os registros com filtro.
        /// </summary>
        /// <param name="_filtro ("id_campo = 1 AND campo1 = 'texto' OR campo2 LIKE 'r%'")">filtro da consulta</param>
        /// <returns>DataSet</returns>
        public DataSet FindByWhere(string _filtro)
        {
            try
            {
                strSql = new StringBuilder();
                strSql.Append(" SELECT ");
                // colunas
                strSql.Append("  Estados.Sigla, Estados.Nome AS NomeEstado, Privilegios.Descricao, Funcionario.* " +
                    " FROM         Funcionario INNER JOIN " +
                    " Privilegios ON Funcionario.codPrevilegio = Privilegios.CodPrevilegio INNER JOIN " +
                    "  Estados ON Funcionario.codEstado = Estados.CodEstado  ");
                strSql.Append(" WHERE ( " + _filtro + " ) ");

                objDO = new SisEagleDO.SisEagleDO();

                // executa consulta e retorna um DataSet
                return objDO.GetDataSet(strSql.ToString(), "Funcionario");
            }
            catch (Exception er)
            {
                throw new Exception("Aconteceu um erro:" + er.Message.ToString());
            }
            finally
            {
                strSql = null;
            }
        }

        /// <summary>
        /// Seleciona todos os registros com filtro e ordenação.
        /// </summary>
        /// <param name="_filtro ("id_campo = 1 AND campo1 = 'texto' OR campo2 LIKE 'r%'")">filtro da consulta</param>
        /// <param name="_orderby">campo de ordenação</param>
        /// <returns>DataSet</returns>
        public DataSet FindByWhere(string _filtro, string _orderby)
        {
            try
            {
                strSql = new StringBuilder();
                strSql.Append(" SELECT ");
                // colunas
                strSql.Append("  Estados.Sigla, Estados.Nome AS NomeEstado, Privilegios.Descricao, Funcionario.* " +
                    " FROM         Funcionario INNER JOIN " +
                    " Privilegios ON Funcionario.codPrevilegio = Privilegios.CodPrevilegio INNER JOIN " +
                    "  Estados ON Funcionario.codEstado = Estados.CodEstado  ");
                strSql.Append(" WHERE ( " + _filtro + " ) ");
                strSql.Append(" ORDER BY " + _orderby);

                objDO = new SisEagleDO.SisEagleDO();

                // executa consulta e retorna um DataSet
                return objDO.GetDataSet(strSql.ToString(), "Funcionario");
            }
            catch (Exception er)
            {
                throw new Exception("Aconteceu um erro:" + er.Message.ToString());
            }
            finally
            {
                strSql = null;
            }
        }

        /// <summary>
        /// Seleciona todos os registros por CodFuncionario.
        /// </summary>
        /// <param name="_CodFuncionario">filtro da consulta</param>
        /// <returns>DataSet</returns>
        public DataSet FindBy_CodFuncionario(int _CodFuncionario)
        {
            try
            {
                strSql = new StringBuilder();
                strSql.Append(" SELECT ");
                // colunas
                strSql.Append("  Estados.Sigla, Estados.Nome AS NomeEstado, Privilegios.Descricao, Funcionario.* " +
                    " FROM         Funcionario INNER JOIN " +
                    " Privilegios ON Funcionario.codPrevilegio = Privilegios.CodPrevilegio INNER JOIN " +
                    "  Estados ON Funcionario.codEstado = Estados.CodEstado  ");
                strSql.Append(" WHERE (  CodFuncionario =   " + _CodFuncionario + "  ) ");

                objDO = new SisEagleDO.SisEagleDO();

                // executa consulta e retorna um DataSet
                return objDO.GetDataSet(strSql.ToString(), "Funcionario");
            }
            catch (Exception er)
            {
                throw new Exception("Aconteceu um erro:" + er.Message.ToString());
            }
            finally
            {
                strSql = null;
            }
        }

        /// <summary>
        /// Seleciona todos os registros por CodFuncionario.
        /// </summary>
        /// <param name="_CodFuncionario">filtro da consulta</param>
        /// <param name="_orderby">campo de ordenação</param>
        /// <returns>DataSet</returns>
        public DataSet FindBy_CodFuncionario(int _CodFuncionario, string _orderby)
        {
            try
            {
                strSql = new StringBuilder();
                strSql.Append(" SELECT ");
                // colunas
                strSql.Append("  Estados.Sigla, Estados.Nome AS NomeEstado, Privilegios.Descricao, Funcionario.* " +
                    " FROM         Funcionario INNER JOIN " +
                    " Privilegios ON Funcionario.codPrevilegio = Privilegios.CodPrevilegio INNER JOIN " +
                    "  Estados ON Funcionario.codEstado = Estados.CodEstado  ");
                strSql.Append(" WHERE (  CodFuncionario =   " + _CodFuncionario + "  ) ");
                strSql.Append(" ORDER BY " + _orderby);

                objDO = new SisEagleDO.SisEagleDO();

                // executa consulta e retorna um DataSet
                return objDO.GetDataSet(strSql.ToString(), "Funcionario");
            }
            catch (Exception er)
            {
                throw new Exception("Aconteceu um erro:" + er.Message.ToString());
            }
            finally
            {
                strSql = null;
            }
        }

        /// <summary>
        /// Seleciona todos os registros por Nome.
        /// </summary>
        /// <param name="_Nome">filtro da consulta</param>
        /// <returns>DataSet</returns>
        public DataSet FindBy_Nome(string _Nome)
        {
            try
            {
                strSql = new StringBuilder();
                strSql.Append(" SELECT ");
                // colunas
                strSql.Append("  Estados.Sigla, Estados.Nome AS NomeEstado, Privilegios.Descricao, Funcionario.* " +
                    " FROM         Funcionario INNER JOIN " +
                    " Privilegios ON Funcionario.codPrevilegio = Privilegios.CodPrevilegio INNER JOIN " +
                    "  Estados ON Funcionario.codEstado = Estados.CodEstado  ");
                strSql.Append(" WHERE (  Funcionario.Nome =  '" + _Nome + "'  ) ");

                objDO = new SisEagleDO.SisEagleDO();

                // executa consulta e retorna um DataSet
                return objDO.GetDataSet(strSql.ToString(), "Funcionario");
            }
            catch (Exception er)
            {
                throw new Exception("Aconteceu um erro:" + er.Message.ToString());
            }
            finally
            {
                strSql = null;
            }
        }

        /// <summary>
        /// Seleciona todos os registros por Nome.
        /// </summary>
        /// <param name="_Nome">filtro da consulta</param>
        /// <param name="_orderby">campo de ordenação</param>
        /// <returns>DataSet</returns>
        public DataSet FindBy_Nome(string _Nome, string _orderby)
        {
            try
            {
                strSql = new StringBuilder();
                strSql.Append(" SELECT ");
                // colunas
                strSql.Append("  Estados.Sigla, Estados.Nome AS NomeEstado, Privilegios.Descricao, Funcionario.* " +
                    " FROM         Funcionario INNER JOIN " +
                    " Privilegios ON Funcionario.codPrevilegio = Privilegios.CodPrevilegio INNER JOIN " +
                    "  Estados ON Funcionario.codEstado = Estados.CodEstado  ");
                strSql.Append(" WHERE (  Funcionario.Nome =  '" + _Nome + "'  ) ");
                strSql.Append(" ORDER BY " + _orderby);

                objDO = new SisEagleDO.SisEagleDO();

                // executa consulta e retorna um DataSet
                return objDO.GetDataSet(strSql.ToString(), "Funcionario");
            }
            catch (Exception er)
            {
                throw new Exception("Aconteceu um erro:" + er.Message.ToString());
            }
            finally
            {
                strSql = null;
            }
        }

        /// <summary>
        /// Seleciona todos os registros por Endereco.
        /// </summary>
        /// <param name="_Endereco">filtro da consulta</param>
        /// <returns>DataSet</returns>
        public DataSet FindBy_Endereco(string _Endereco)
        {
            try
            {
                strSql = new StringBuilder();
                strSql.Append(" SELECT ");
                // colunas
                strSql.Append("  Estados.Sigla, Estados.Nome AS NomeEstado, Privilegios.Descricao, Funcionario.* " +
                    " FROM         Funcionario INNER JOIN " +
                    " Privilegios ON Funcionario.codPrevilegio = Privilegios.CodPrevilegio INNER JOIN " +
                    "  Estados ON Funcionario.codEstado = Estados.CodEstado  ");
                strSql.Append(" WHERE (  Endereco =  '" + _Endereco + "'  ) ");

                objDO = new SisEagleDO.SisEagleDO();

                // executa consulta e retorna um DataSet
                return objDO.GetDataSet(strSql.ToString(), "Funcionario");
            }
            catch (Exception er)
            {
                throw new Exception("Aconteceu um erro:" + er.Message.ToString());
            }
            finally
            {
                strSql = null;
            }
        }

        /// <summary>
        /// Seleciona todos os registros por Endereco.
        /// </summary>
        /// <param name="_Endereco">filtro da consulta</param>
        /// <param name="_orderby">campo de ordenação</param>
        /// <returns>DataSet</returns>
        public DataSet FindBy_Endereco(string _Endereco, string _orderby)
        {
            try
            {
                strSql = new StringBuilder();
                strSql.Append(" SELECT ");
                // colunas
                strSql.Append("  Estados.Sigla, Estados.Nome AS NomeEstado, Privilegios.Descricao, Funcionario.* " +
                    " FROM         Funcionario INNER JOIN " +
                    " Privilegios ON Funcionario.codPrevilegio = Privilegios.CodPrevilegio INNER JOIN " +
                    "  Estados ON Funcionario.codEstado = Estados.CodEstado  ");
                strSql.Append(" WHERE (  Endereco =  '" + _Endereco + "'  ) ");
                strSql.Append(" ORDER BY " + _orderby);

                objDO = new SisEagleDO.SisEagleDO();

                // executa consulta e retorna um DataSet
                return objDO.GetDataSet(strSql.ToString(), "Funcionario");
            }
            catch (Exception er)
            {
                throw new Exception("Aconteceu um erro:" + er.Message.ToString());
            }
            finally
            {
                strSql = null;
            }
        }

        /// <summary>
        /// Seleciona todos os registros por NomeCidade.
        /// </summary>
        /// <param name="_NomeCidade">filtro da consulta</param>
        /// <returns>DataSet</returns>
        public DataSet FindBy_NomeCidade(string _NomeCidade)
        {
            try
            {
                strSql = new StringBuilder();
                strSql.Append(" SELECT ");
                // colunas
                strSql.Append("  Estados.Sigla, Estados.Nome AS NomeEstado, Privilegios.Descricao, Funcionario.* " +
                    " FROM         Funcionario INNER JOIN " +
                    " Privilegios ON Funcionario.codPrevilegio = Privilegios.CodPrevilegio INNER JOIN " +
                    "  Estados ON Funcionario.codEstado = Estados.CodEstado  ");
                strSql.Append(" WHERE (  NomeCidade =   " + _NomeCidade + "  ) ");

                objDO = new SisEagleDO.SisEagleDO();

                // executa consulta e retorna um DataSet
                return objDO.GetDataSet(strSql.ToString(), "Funcionario");
            }
            catch (Exception er)
            {
                throw new Exception("Aconteceu um erro:" + er.Message.ToString());
            }
            finally
            {
                strSql = null;
            }
        }

        /// <summary>
        /// Seleciona todos os registros por NomeCidade.
        /// </summary>
        /// <param name="_NomeCidade">filtro da consulta</param>
        /// <param name="_orderby">campo de ordenação</param>
        /// <returns>DataSet</returns>
        public DataSet FindBy_NomeCidade(string _NomeCidade, string _orderby)
        {
            try
            {
                strSql = new StringBuilder();
                strSql.Append(" SELECT ");
                // colunas
                strSql.Append("  Estados.Sigla, Estados.Nome AS NomeEstado, Privilegios.Descricao, Funcionario.* " +
                    " FROM         Funcionario INNER JOIN " +
                    " Privilegios ON Funcionario.codPrevilegio = Privilegios.CodPrevilegio INNER JOIN " +
                    "  Estados ON Funcionario.codEstado = Estados.CodEstado  ");
                strSql.Append(" WHERE (  NomeCidade =   " + _NomeCidade + "  ) ");
                strSql.Append(" ORDER BY " + _orderby);

                objDO = new SisEagleDO.SisEagleDO();

                // executa consulta e retorna um DataSet
                return objDO.GetDataSet(strSql.ToString(), "Funcionario");
            }
            catch (Exception er)
            {
                throw new Exception("Aconteceu um erro:" + er.Message.ToString());
            }
            finally
            {
                strSql = null;
            }
        }

        /// <summary>
        /// Seleciona todos os registros por Bairro.
        /// </summary>
        /// <param name="_Bairro">filtro da consulta</param>
        /// <returns>DataSet</returns>
        public DataSet FindBy_Bairro(string _Bairro)
        {
            try
            {
                strSql = new StringBuilder();
                strSql.Append(" SELECT ");
                // colunas
                strSql.Append("  Estados.Sigla, Estados.Nome AS NomeEstado, Privilegios.Descricao, Funcionario.* " +
                    " FROM         Funcionario INNER JOIN " +
                    " Privilegios ON Funcionario.codPrevilegio = Privilegios.CodPrevilegio INNER JOIN " +
                    "  Estados ON Funcionario.codEstado = Estados.CodEstado  ");
                strSql.Append(" WHERE (  Bairro =  '" + _Bairro + "'  ) ");

                objDO = new SisEagleDO.SisEagleDO();

                // executa consulta e retorna um DataSet
                return objDO.GetDataSet(strSql.ToString(), "Funcionario");
            }
            catch (Exception er)
            {
                throw new Exception("Aconteceu um erro:" + er.Message.ToString());
            }
            finally
            {
                strSql = null;
            }
        }

        /// <summary>
        /// Seleciona todos os registros por Bairro.
        /// </summary>
        /// <param name="_Bairro">filtro da consulta</param>
        /// <param name="_orderby">campo de ordenação</param>
        /// <returns>DataSet</returns>
        public DataSet FindBy_Bairro(string _Bairro, string _orderby)
        {
            try
            {
                strSql = new StringBuilder();
                strSql.Append(" SELECT ");
                // colunas
                strSql.Append("  Estados.Sigla, Estados.Nome AS NomeEstado, Privilegios.Descricao, Funcionario.* " +
                    " FROM         Funcionario INNER JOIN " +
                    " Privilegios ON Funcionario.codPrevilegio = Privilegios.CodPrevilegio INNER JOIN " +
                    "  Estados ON Funcionario.codEstado = Estados.CodEstado  ");
                strSql.Append(" WHERE (  Bairro =  '" + _Bairro + "'  ) ");
                strSql.Append(" ORDER BY " + _orderby);

                objDO = new SisEagleDO.SisEagleDO();

                // executa consulta e retorna um DataSet
                return objDO.GetDataSet(strSql.ToString(), "Funcionario");
            }
            catch (Exception er)
            {
                throw new Exception("Aconteceu um erro:" + er.Message.ToString());
            }
            finally
            {
                strSql = null;
            }
        }

        /// <summary>
        /// Seleciona todos os registros por CPF.
        /// </summary>
        /// <param name="_CPF">filtro da consulta</param>
        /// <returns>DataSet</returns>
        public DataSet FindBy_CPF(string _CPF)
        {
            try
            {
                strSql = new StringBuilder();
                strSql.Append(" SELECT ");
                // colunas
                strSql.Append("  Estados.Sigla, Estados.Nome AS NomeEstado, Privilegios.Descricao, Funcionario.* " +
                    " FROM         Funcionario INNER JOIN " +
                    " Privilegios ON Funcionario.codPrevilegio = Privilegios.CodPrevilegio INNER JOIN " +
                    "  Estados ON Funcionario.codEstado = Estados.CodEstado  ");
                strSql.Append(" WHERE (  CPF =  '" + _CPF + "'  ) ");

                objDO = new SisEagleDO.SisEagleDO();

                // executa consulta e retorna um DataSet
                return objDO.GetDataSet(strSql.ToString(), "Funcionario");
            }
            catch (Exception er)
            {
                throw new Exception("Aconteceu um erro:" + er.Message.ToString());
            }
            finally
            {
                strSql = null;
            }
        }

        /// <summary>
        /// Seleciona todos os registros por CPF.
        /// </summary>
        /// <param name="_CPF">filtro da consulta</param>
        /// <param name="_orderby">campo de ordenação</param>
        /// <returns>DataSet</returns>
        public DataSet FindBy_CPF(string _CPF, string _orderby)
        {
            try
            {
                strSql = new StringBuilder();
                strSql.Append(" SELECT ");
                // colunas
                strSql.Append("  Estados.Sigla, Estados.Nome AS NomeEstado, Privilegios.Descricao, Funcionario.* " +
                    " FROM         Funcionario INNER JOIN " +
                    " Privilegios ON Funcionario.codPrevilegio = Privilegios.CodPrevilegio INNER JOIN " +
                    "  Estados ON Funcionario.codEstado = Estados.CodEstado  ");
                strSql.Append(" WHERE (  CPF =  '" + _CPF + "'  ) ");
                strSql.Append(" ORDER BY " + _orderby);

                objDO = new SisEagleDO.SisEagleDO();

                // executa consulta e retorna um DataSet
                return objDO.GetDataSet(strSql.ToString(), "Funcionario");
            }
            catch (Exception er)
            {
                throw new Exception("Aconteceu um erro:" + er.Message.ToString());
            }
            finally
            {
                strSql = null;
            }
        }

        /// <summary>
        /// Seleciona todos os registros por TelefoneRes.
        /// </summary>
        /// <param name="_TelefoneRes">filtro da consulta</param>
        /// <returns>DataSet</returns>
        public DataSet FindBy_TelefoneRes(string _TelefoneRes)
        {
            try
            {
                strSql = new StringBuilder();
                strSql.Append(" SELECT ");
                // colunas
                strSql.Append(" CodFuncionario, Nome, Endereco, NomeCidade, Bairro, CPF, TelefoneRes, Email, TelefoneCel, codPrevilegio, Senha, codEstado  ");
                strSql.Append(" FROM  Funcionario  ");
                strSql.Append(" WHERE (  TelefoneRes =  '" + _TelefoneRes + "'  ) ");

                objDO = new SisEagleDO.SisEagleDO();

                // executa consulta e retorna um DataSet
                return objDO.GetDataSet(strSql.ToString(), "Funcionario");
            }
            catch (Exception er)
            {
                throw new Exception("Aconteceu um erro:" + er.Message.ToString());
            }
            finally
            {
                strSql = null;
            }
        }

        /// <summary>
        /// Seleciona todos os registros por TelefoneRes.
        /// </summary>
        /// <param name="_TelefoneRes">filtro da consulta</param>
        /// <param name="_orderby">campo de ordenação</param>
        /// <returns>DataSet</returns>
        public DataSet FindBy_TelefoneRes(string _TelefoneRes, string _orderby)
        {
            try
            {
                strSql = new StringBuilder();
                strSql.Append(" SELECT ");
                // colunas
                strSql.Append("  Estados.Sigla, Estados.Nome AS NomeEstado, Privilegios.Descricao, Funcionario.* " +
                    " FROM         Funcionario INNER JOIN " +
                    " Privilegios ON Funcionario.codPrevilegio = Privilegios.CodPrevilegio INNER JOIN " +
                    "  Estados ON Funcionario.codEstado = Estados.CodEstado  ");
                strSql.Append(" WHERE (  TelefoneRes =  '" + _TelefoneRes + "'  ) ");
                strSql.Append(" ORDER BY " + _orderby);

                objDO = new SisEagleDO.SisEagleDO();

                // executa consulta e retorna um DataSet
                return objDO.GetDataSet(strSql.ToString(), "Funcionario");
            }
            catch (Exception er)
            {
                throw new Exception("Aconteceu um erro:" + er.Message.ToString());
            }
            finally
            {
                strSql = null;
            }
        }

        /// <summary>
        /// Seleciona todos os registros por Email.
        /// </summary>
        /// <param name="_Email">filtro da consulta</param>
        /// <returns>DataSet</returns>
        public DataSet FindBy_Email(string _Email)
        {
            try
            {
                strSql = new StringBuilder();
                strSql.Append(" SELECT ");
                // colunas
                strSql.Append("  Estados.Sigla, Estados.Nome AS NomeEstado, Privilegios.Descricao, Funcionario.* " +
                    " FROM         Funcionario INNER JOIN " +
                    " Privilegios ON Funcionario.codPrevilegio = Privilegios.CodPrevilegio INNER JOIN " +
                    "  Estados ON Funcionario.codEstado = Estados.CodEstado  ");
                strSql.Append(" WHERE (  Email =  '" + _Email + "'  ) ");

                objDO = new SisEagleDO.SisEagleDO();

                // executa consulta e retorna um DataSet
                return objDO.GetDataSet(strSql.ToString(), "Funcionario");
            }
            catch (Exception er)
            {
                throw new Exception("Aconteceu um erro:" + er.Message.ToString());
            }
            finally
            {
                strSql = null;
            }
        }

        /// <summary>
        /// Seleciona todos os registros por Email.
        /// </summary>
        /// <param name="_Email">filtro da consulta</param>
        /// <param name="_orderby">campo de ordenação</param>
        /// <returns>DataSet</returns>
        public DataSet FindBy_Email(string _Email, string _orderby)
        {
            try
            {
                strSql = new StringBuilder();
                strSql.Append(" SELECT ");
                // colunas
                strSql.Append("  Estados.Sigla, Estados.Nome AS NomeEstado, Privilegios.Descricao, Funcionario.* " +
                    " FROM         Funcionario INNER JOIN " +
                    " Privilegios ON Funcionario.codPrevilegio = Privilegios.CodPrevilegio INNER JOIN " +
                    "  Estados ON Funcionario.codEstado = Estados.CodEstado  ");
                strSql.Append(" WHERE (  Email =  '" + _Email + "'  ) ");
                strSql.Append(" ORDER BY " + _orderby);

                objDO = new SisEagleDO.SisEagleDO();

                // executa consulta e retorna um DataSet
                return objDO.GetDataSet(strSql.ToString(), "Funcionario");
            }
            catch (Exception er)
            {
                throw new Exception("Aconteceu um erro:" + er.Message.ToString());
            }
            finally
            {
                strSql = null;
            }
        }

        /// <summary>
        /// Seleciona todos os registros por TelefoneCel.
        /// </summary>
        /// <param name="_TelefoneCel">filtro da consulta</param>
        /// <returns>DataSet</returns>
        public DataSet FindBy_TelefoneCel(string _TelefoneCel)
        {
            try
            {
                strSql = new StringBuilder();
                strSql.Append(" SELECT ");
                // colunas
                strSql.Append("  Estados.Sigla, Estados.Nome AS NomeEstado, Privilegios.Descricao, Funcionario.* " +
                    " FROM         Funcionario INNER JOIN " +
                    " Privilegios ON Funcionario.codPrevilegio = Privilegios.CodPrevilegio INNER JOIN " +
                    "  Estados ON Funcionario.codEstado = Estados.CodEstado  ");
                strSql.Append(" WHERE (  TelefoneCel =  '" + _TelefoneCel + "'  ) ");

                objDO = new SisEagleDO.SisEagleDO();

                // executa consulta e retorna um DataSet
                return objDO.GetDataSet(strSql.ToString(), "Funcionario");
            }
            catch (Exception er)
            {
                throw new Exception("Aconteceu um erro:" + er.Message.ToString());
            }
            finally
            {
                strSql = null;
            }
        }

        /// <summary>
        /// Seleciona todos os registros por TelefoneCel.
        /// </summary>
        /// <param name="_TelefoneCel">filtro da consulta</param>
        /// <param name="_orderby">campo de ordenação</param>
        /// <returns>DataSet</returns>
        public DataSet FindBy_TelefoneCel(string _TelefoneCel, string _orderby)
        {
            try
            {
                strSql = new StringBuilder();
                strSql.Append(" SELECT ");
                // colunas
                strSql.Append("  Estados.Sigla, Estados.Nome AS NomeEstado, Privilegios.Descricao, Funcionario.* " +
                    " FROM         Funcionario INNER JOIN " +
                    " Privilegios ON Funcionario.codPrevilegio = Privilegios.CodPrevilegio INNER JOIN " +
                    "  Estados ON Funcionario.codEstado = Estados.CodEstado  ");
                strSql.Append(" WHERE (  TelefoneCel =  '" + _TelefoneCel + "'  ) ");
                strSql.Append(" ORDER BY " + _orderby);

                objDO = new SisEagleDO.SisEagleDO();

                // executa consulta e retorna um DataSet
                return objDO.GetDataSet(strSql.ToString(), "Funcionario");
            }
            catch (Exception er)
            {
                throw new Exception("Aconteceu um erro:" + er.Message.ToString());
            }
            finally
            {
                strSql = null;
            }
        }

        /// <summary>
        /// Seleciona todos os registros por codPrevilegio.
        /// </summary>
        /// <param name="_codPrevilegio">filtro da consulta</param>
        /// <returns>DataSet</returns>
        public DataSet FindBy_codPrevilegio(int _codPrevilegio)
        {
            try
            {
                strSql = new StringBuilder();
                strSql.Append(" SELECT ");
                // colunas
                strSql.Append("  Estados.Sigla, Estados.Nome AS NomeEstado, Privilegios.Descricao, Funcionario.* " +
                    " FROM         Funcionario INNER JOIN " +
                    " Privilegios ON Funcionario.codPrevilegio = Privilegios.CodPrevilegio INNER JOIN " +
                    "  Estados ON Funcionario.codEstado = Estados.CodEstado  ");
                strSql.Append(" WHERE (  codPrevilegio =   " + _codPrevilegio + "  ) ");

                objDO = new SisEagleDO.SisEagleDO();

                // executa consulta e retorna um DataSet
                return objDO.GetDataSet(strSql.ToString(), "Funcionario");
            }
            catch (Exception er)
            {
                throw new Exception("Aconteceu um erro:" + er.Message.ToString());
            }
            finally
            {
                strSql = null;
            }
        }

        /// <summary>
        /// Seleciona todos os registros por codPrevilegio.
        /// </summary>
        /// <param name="_codPrevilegio">filtro da consulta</param>
        /// <param name="_orderby">campo de ordenação</param>
        /// <returns>DataSet</returns>
        public DataSet FindBy_codPrevilegio(int _codPrevilegio, string _orderby)
        {
            try
            {
                strSql = new StringBuilder();
                strSql.Append(" SELECT ");
                // colunas
                strSql.Append("  Estados.Sigla, Estados.Nome AS NomeEstado, Privilegios.Descricao, Funcionario.* " +
                    " FROM         Funcionario INNER JOIN " +
                    " Privilegios ON Funcionario.codPrevilegio = Privilegios.CodPrevilegio INNER JOIN " +
                    "  Estados ON Funcionario.codEstado = Estados.CodEstado  ");
                strSql.Append(" WHERE (  codPrevilegio =   " + _codPrevilegio + "  ) ");
                strSql.Append(" ORDER BY " + _orderby);

                objDO = new SisEagleDO.SisEagleDO();

                // executa consulta e retorna um DataSet
                return objDO.GetDataSet(strSql.ToString(), "Funcionario");
            }
            catch (Exception er)
            {
                throw new Exception("Aconteceu um erro:" + er.Message.ToString());
            }
            finally
            {
                strSql = null;
            }
        }

        /// <summary>
        /// Seleciona todos os registros por Senha.
        /// </summary>
        /// <param name="_Senha">filtro da consulta</param>
        /// <returns>DataSet</returns>
        public DataSet FindBy_Senha(string _Senha)
        {
            try
            {
                strSql = new StringBuilder();
                strSql.Append(" SELECT ");
                // colunas
                strSql.Append("  Estados.Sigla, Estados.Nome AS NomeEstado, Privilegios.Descricao, Funcionario.* " +
                    " FROM         Funcionario INNER JOIN " +
                    " Privilegios ON Funcionario.codPrevilegio = Privilegios.CodPrevilegio INNER JOIN " +
                    "  Estados ON Funcionario.codEstado = Estados.CodEstado  ");
                strSql.Append(" WHERE (  Senha =  '" + _Senha + "'  ) ");

                objDO = new SisEagleDO.SisEagleDO();

                // executa consulta e retorna um DataSet
                return objDO.GetDataSet(strSql.ToString(), "Funcionario");
            }
            catch (Exception er)
            {
                throw new Exception("Aconteceu um erro:" + er.Message.ToString());
            }
            finally
            {
                strSql = null;
            }
        }

        /// <summary>
        /// Seleciona todos os registros por Senha.
        /// </summary>
        /// <param name="_Senha">filtro da consulta</param>
        /// <returns>DataSet</returns>
        public DataSet BuscarFuncionario(string _Senha, string _CPF)
        {
            try
            {
                strSql = new StringBuilder();
                strSql.Append(" SELECT ");
                // colunas
                strSql.Append("  Estados.Sigla, Estados.Nome AS NomeEstado, Privilegios.Descricao, Funcionario.* " +
                    " FROM         Funcionario INNER JOIN " +
                    " Privilegios ON Funcionario.codPrevilegio = Privilegios.CodPrevilegio INNER JOIN " +
                    "  Estados ON Funcionario.codEstado = Estados.CodEstado  ");
                strSql.Append(" WHERE (  Senha =  '" + _Senha + "'  ) ");
                strSql.Append(" AND CPF = '" + _CPF + "'");

                objDO = new SisEagleDO.SisEagleDO();

                // executa consulta e retorna um DataSet
                return objDO.GetDataSet(strSql.ToString(), "Funcionario");
            }
            catch (Exception er)
            {
                throw new Exception("Aconteceu um erro:" + er.Message.ToString());
            }
            finally
            {
                strSql = null;
            }
        }

        /// <summary>
        /// Seleciona todos os registros por Senha.
        /// </summary>
        /// <param name="_Senha">filtro da consulta</param>
        /// <param name="_orderby">campo de ordenação</param>
        /// <returns>DataSet</returns>
        public DataSet FindBy_Senha(string _Senha, string _orderby)
        {
            try
            {
                strSql = new StringBuilder();
                strSql.Append(" SELECT ");
                // colunas
                strSql.Append("  Estados.Sigla, Estados.Nome AS NomeEstado, Privilegios.Descricao, Funcionario.* " +
                    " FROM         Funcionario INNER JOIN " +
                    " Privilegios ON Funcionario.codPrevilegio = Privilegios.CodPrevilegio INNER JOIN " +
                    "  Estados ON Funcionario.codEstado = Estados.CodEstado  ");
                strSql.Append(" WHERE (  Senha =  '" + _Senha + "'  ) ");
                strSql.Append(" ORDER BY " + _orderby);

                objDO = new SisEagleDO.SisEagleDO();

                // executa consulta e retorna um DataSet
                return objDO.GetDataSet(strSql.ToString(), "Funcionario");
            }
            catch (Exception er)
            {
                throw new Exception("Aconteceu um erro:" + er.Message.ToString());
            }
            finally
            {
                strSql = null;
            }
        }

        /// <summary>
        /// Seleciona todos os registros por codEstado.
        /// </summary>
        /// <param name="_codEstado">filtro da consulta</param>
        /// <returns>DataSet</returns>
        public DataSet FindBy_codEstado(int _codEstado)
        {
            try
            {
                strSql = new StringBuilder();
                strSql.Append(" SELECT ");
                // colunas
                strSql.Append("  Estados.Sigla, Estados.Nome AS NomeEstado, Privilegios.Descricao, Funcionario.* " +
                     " FROM         Funcionario INNER JOIN " +
                     " Privilegios ON Funcionario.codPrevilegio = Privilegios.CodPrevilegio INNER JOIN " +
                     "  Estados ON Funcionario.codEstado = Estados.CodEstado  ");
                strSql.Append(" WHERE (  codEstado =   " + _codEstado + "  ) ");

                objDO = new SisEagleDO.SisEagleDO();

                // executa consulta e retorna um DataSet
                return objDO.GetDataSet(strSql.ToString(), "Funcionario");
            }
            catch (Exception er)
            {
                throw new Exception("Aconteceu um erro:" + er.Message.ToString());
            }
            finally
            {
                strSql = null;
            }
        }

        /// <summary>
        /// Seleciona todos os registros por codEstado.
        /// </summary>
        /// <param name="_codEstado">filtro da consulta</param>
        /// <param name="_orderby">campo de ordenação</param>
        /// <returns>DataSet</returns>
        public DataSet FindBy_codEstado(int _codEstado, string _orderby)
        {
            try
            {
                strSql = new StringBuilder();
                strSql.Append(" SELECT ");
                // colunas
                strSql.Append("  Estados.Sigla, Estados.Nome AS NomeEstado, Privilegios.Descricao, Funcionario.* " +
                     " FROM         Funcionario INNER JOIN " +
                     " Privilegios ON Funcionario.codPrevilegio = Privilegios.CodPrevilegio INNER JOIN " +
                     "  Estados ON Funcionario.codEstado = Estados.CodEstado  ");
                strSql.Append(" WHERE (  codEstado =   " + _codEstado + "  ) ");
                strSql.Append(" ORDER BY " + _orderby);

                objDO = new SisEagleDO.SisEagleDO();

                // executa consulta e retorna um DataSet
                return objDO.GetDataSet(strSql.ToString(), "Funcionario");
            }
            catch (Exception er)
            {
                throw new Exception("Aconteceu um erro:" + er.Message.ToString());
            }
            finally
            {
                strSql = null;
            }
        }

        /// <summary>
        /// Insere os registros do banco e retorna o número de linhas afetadas.
        /// </summary>
        /// <param name="_vo">objetos vo do banco</param>
        /// <returns>int</returns>
        public int Insert(SisEagleVO.FuncionarioVO _vo)
        {
            try
            {
                strSql = new StringBuilder();
                strSql.Append(" INSERT INTO  Funcionario  ");
                strSql.Append(" (");

                strSql.Append(" Nome, ");
                strSql.Append(" Endereco, ");
                strSql.Append(" NomeCidade, ");
                strSql.Append(" Bairro, ");
                strSql.Append(" CPF, ");
                strSql.Append(" TelefoneRes, ");
                strSql.Append(" Email, ");
                strSql.Append(" TelefoneCel, ");
                strSql.Append(" codPrevilegio, ");
                strSql.Append(" Senha, ");
                strSql.Append(" codEstado ");
                strSql.Append(" ) ");
                strSql.Append(" VALUES (");
                strSql.Append("  '" + _vo.Nome + "' , ");
                strSql.Append("  '" + _vo.Endereco + "', ");
                strSql.Append("  '"+ _vo.NomeCidade +"' ,");
                strSql.Append("  '" + _vo.Bairro + "' , ");
                strSql.Append("  '" + _vo.CPF + "' , ");
                strSql.Append("  '" + _vo.TelefoneRes + "' , ");
                strSql.Append("  '" + _vo.Email + "' , ");
                strSql.Append("  '" + _vo.TelefoneCel + "' , ");
                strSql.Append(" " + _vo.codPrevilegio + " , ");
                strSql.Append("  '" + _vo.Senha + "' , ");
                strSql.Append(" " + _vo.codEstado + "  )");


                objDO = new SisEagleDO.SisEagleDO();

                // executa comando e retorna o número de linhas afetadas.
                return objDO.ExecutaQuery(strSql.ToString());
            }
            catch (Exception er)
            {
                throw new Exception("Aconteceu um erro:" + er.Message.ToString());
            }
            finally
            {
                strSql = null;
            }
        }

        /// <summary>
        /// Atualiza os registros do banco e retorna o número de linhas afetadas.
        /// </summary>
        /// <param name="_vo">objetos vo do banco</param>
        /// <returns>int</returns>
        public int Update(SisEagleVO.FuncionarioVO _vo)
        {
            try
            {
                strSql = new StringBuilder();
                strSql.Append(" UPDATE  Funcionario  ");
                strSql.Append(" SET ");

                strSql.Append("Nome = '" + _vo.Nome + "' ,  ");
                strSql.Append("Endereco =  '" + _vo.Endereco + "' ,  ");
                strSql.Append("NomeCidade =   '" + _vo.NomeCidade + "' ,  ");
                strSql.Append("Bairro =  '" + _vo.Bairro + "' ,  ");
                strSql.Append("CPF =  '" + _vo.CPF + "' ,  ");
                strSql.Append("TelefoneRes =  '" + _vo.TelefoneRes + "' ,  ");
                strSql.Append("Email =  '" + _vo.Email + "' ,  ");
                strSql.Append("TelefoneCel =  '" + _vo.TelefoneCel + "' ,  ");
                strSql.Append("codPrevilegio =   " + _vo.codPrevilegio + " ,  ");
                strSql.Append("Senha =  '" + _vo.Senha + "' ,  ");
                strSql.Append("codEstado =   " + _vo.codEstado + "   ");

                strSql.Append(" WHERE ( CodFuncionario =   " + _vo.CodFuncionario + "  ) ");

                objDO = new SisEagleDO.SisEagleDO();

                // executa comando e retorna o número de linhas afetadas.
                return objDO.ExecutaQuery(strSql.ToString());
            }
            catch (Exception er)
            {
                throw new Exception("Aconteceu um erro:" + er.Message.ToString());
            }
            finally
            {
                strSql = null;
            }
        }

        /// <summary>
        /// Deleta os registros do banco e retorna o número de linhas afetadas.
        /// </summary>
        /// <param name="_vo">objetos vo do banco</param>
        /// <returns>int</returns>
        public int Delete(SisEagleVO.FuncionarioVO _vo)
        {
            try
            {
                strSql = new StringBuilder();
                strSql.Append(" DELETE FROM Funcionario  ");
                strSql.Append(" WHERE ( CodFuncionario = " + _vo.CodFuncionario + " ) ");

                objDO = new SisEagleDO.SisEagleDO();

                // executa comando e retorna o número de linhas afetadas.
                return objDO.ExecutaQuery(strSql.ToString());
            }
            catch (Exception er)
            {
                throw new Exception("Aconteceu um erro:" + er.Message.ToString());
            }
            finally
            {
                strSql = null;
            }
        }

    }

}
